Field of the Invention
The present invention generally relates to execution of compute tasks and more specifically to speculative execution of instructions and rollback.
Description of the Related Art
Conventional pipelined processors have performed speculative execution of conditional branch instructions by predicting which side of the conditional branch will be executed. When the prediction is incorrect, the instructions are rolled back so that the other side of the conditional branch may be executed. When the instructions are rolled back, pipeline stages of the processing pipeline are idle until the instructions for the other side of the conditional branch reach those pipeline stages.
Accordingly, what is needed in the art is a system and method for speculatively issuing instructions that allows the processing pipeline to continue to process some instructions during rollback of other instructions. Importantly, the speculative execution should not be limited to conditional branch instructions.